package cn.agiledata.bank.netReturn.service;

import java.util.List;
import java.util.Map;

import cn.agiledata.bank.audit.exception.AuditException;
import cn.agiledata.bank.hibernateBean.Operator;
import cn.agiledata.bank.hibernateBean.Transaction;
import cn.agiledata.bank.netReturn.exception.NetReturnException;
import cn.agiledata.bank.netReturn.form.NetReturnForm;
import cn.agiledata.bank.netReturn.logic.NetReturnResponse;
import cn.agiledata.bank.transaction.exception.TransactionException;

public interface NetReturnService {

/**
* 校验指定数字签名是否与提交的参数匹配
* 
* @param parameters
*            参与校验的所有参数
* @param mac
*            参与比较的数字签名mac值
* @throws LinkBankException
*             若校验未通过
*/
public void validateMac(Map parameters, String mac)
    throws NetReturnException;

public List getNetReturnList(NetReturnForm form) 
	throws NetReturnException;

public Map validateNetReturn(List netReturnList, String accountId) 
	throws NetReturnException;

public String createReturnApply(List netReturnList, String merchantId,Operator operator, String bathModel)
	throws TransactionException, AuditException, Exception;

public NetReturnResponse backgroundResponse(NetReturnResponse netReturnResponse);

public void validateVersion(String version, Map parameters) 
	throws NetReturnException;

public Map getParameters(Transaction trans);
}


